package com.stark.asm.service.order;

import com.stark.asm.common.util.page.Result;
import com.stark.asm.domain.order.Order;
import com.stark.asm.domain.order.query.OrderQuery;
import com.stark.asm.domain.send.Send;

/**
 * Order information service interface
 * @author WangYue
 *
 */
public interface OrderService {

	/**
	 * add order information
	 * @param order   order value class
	 * @return Result 
	 */
	public Result addOrder(Order order);
	
	/**
	 * add order information
	 * @param order value class,send  value class
	 * @return Result 
	 */
	public Result addOrder(Order order,Send send);
	
	/**
	 * update order information
	 * @param order  order value class
	 * @return Result 
	 */
	public Result updateOrder(Order order);
	
	/**
	 * according to order id ,query order information.
	 * @param id  order id
	 * @return  Result
	 */
	public Result getOrderById(Long id);
	
	/**
	 * according to order code ,query order information.
	 * @param orderCode  order code
	 * @return Result
	 */
	public Result getOrderByOrderCode(String orderCode);
	
	/**
	 * according to order id ,query order information.
	 * @param id  id
	 * @return Result
	 */
	public Result getOrderDetailById(Long id);
	
	/**
	 * according to order code,query order information.
	 * @param id  id
	 * @return Result
	 */
	public Result getOrderDetailByOrderCode(String orderCode);
	
	
	/**
	 * query order information with page
	 * @param query Query order value class
	 * @return Result
	 */
	public Result queryOrderListByQueryBean(OrderQuery orderQuery);
	
	/**
	 * query order information with page
	 * @param query Query order value class
	 * @return Result
	 */
	public Result queryOrderListPageByQueryBean(OrderQuery orderQuery, int pageIndex, int pageSize);
	
	
	/**
	 * according to order id,delete order information.
	 * @param id  order id
	 * @return Result .
	 */
	public Result deleteOrderById(Long id);

	/**
	 * according to order ids,delete orders information
	 * @param ids orders ids
	 * @return Result
	 */
	public Result deleteOrderByIds(Long[] ids);

	
}
